/**
 * @file XBeeProDM24.h
 *
 * Definicion y Funciones del Modulo XBee-PRO DigiMesh 2.4
 *
 * @version  1.00a
 * @date     22/5/2014
 * @author   Pirx
 *
 */

#ifndef __XBEEPRODM24_H_
#define __XBEEPRODM24_H_

/***************************** Include Files *********************************/

#include <GenericTypeDefs.h>

/************************** Constant Definitions *****************************/

#define	XBEE	0

/**************************** Type Definitions *******************************/

typedef enum {
	XBtim_RFON = 0,				// Temporizadores Programables
	XBtim_RFOFF,
	XBtim_QUEUE,
	XBtim_REPLY,
} E_XBeeTIM;

typedef enum {
	XBee_1200 = 0,				// XBee BaudRate
	XBee_2400,
	XBee_4800,
	XBee_9600,
	XBee_19200,
	XBee_38400,
	XBee_57600,
	XBee_115200,
	XBee_230400,
} E_XBeeBaud;

typedef enum {
	XBee_NoPar = 0,				// XBee Parity
	XBee_Even,
	XBee_Odd,
	XBee_High,
	XBee_Low,
} E_XBeeParity;

typedef enum {
	XBee_NoCTS = 0,				// XBee CTS Line (XBee Out)
	XBee_CTS,
} E_XBeeCTS;

typedef enum {
	XBee_NoRTS = 0,				// XBee RTS Line (XBee Inp)
	XBee_RTS,
} E_XBeeRTS;

typedef struct{
	UINT8*	adr;				// Direccion de los Datos
	UINT8	lon;				// Longitud de los Datos
	UINT8	stt;				// Status (FALSE=ERROR)
}StrAPIdata;


/************************** Function Prototypes ******************************/

extern UINT8 XBeeInit(UINT8 dev, 						// Parametros de funcionamiento del modulo
					  UINT8 bd,
					  UINT8 nb,
					  UINT8 pa,
					  UINT8 st,
					  UINT8 cts,
					  UINT8 rts);
extern BOOL XBeeGetOn(UINT8 dev);						// Obtener el Estado de Encendido del Modulo
extern BOOL XBeeTimer(UINT8 dev);						// Control de Timers
extern BOOL XBeeSetWin(UINT8 dev, UINT32 tim);			// Establece el Timer de Ventana
extern BOOL XBeeMain(UINT8 dev);						// Control Principal del modulo
extern BOOL XBeeSetTim(UINT8 dev, UINT8 tim, UINT32 s);	// Temporizadores Programables
extern BOOL XBeeGetRun(UINT8 dev);						// Modulo Operativo TX/RX?
extern BOOL XBeeGetReset(UINT8 dev);					// Obtener el Estado de la linea _xbeerst

#endif